package com.sss.hloster0105;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
import java.util.*;
import java.util.Scanner;


public class StudentMaster {
	// 属性
		// 学生信息集合对象
		private Student arrStus;

		// 行为

		public StudentMaster() {
			super();
			// 调用初始化方法
			init();
		}

		public void showScore() {
			// 初始化
			// init();

			// 排序
			bubbleSort();

			// 打印信息
			printArr();
		}

		// 数据录入行为
		private void init() {
			// 准备数据
			Scanner sc = new Scanner(System.in);
			System.out.println("请输入班级学生人数：");
			// 学生人数
			int count = sc.nextInt();
			// 根据学生人数创建学生数组
			// 此处初始化的是成员变量，而不是局部变量
			List arrStus = new ArrayList();
			// 添加数据(可以控制台输入)
			for (int i = 0; i < count; i++) {
				// 输入参数
				System.out.println("请输入第" + (i + 1) + "个学生的姓名：");
				String strName = sc.next();
				System.out.println("请输入第" + (i + 1) + "个学生的学号：");
				String strNum = sc.next();
				System.out.println("请输入第" + (i + 1) + "个学生的成绩：");
				double fScore = sc.nextDouble();
				// 根据输入的参数，构建一个学生对象实例
				Student stu = new Student(strName, strNum, fScore);
				// 把创建的学生对象，放到学生数组中
				arrStus.add(stu);
			}
		}

		// 排序行为
		/**
		 * 冒泡排序算法[从小到大]--优化
		 * 
		 * @param arrStus 被排序的数组
		 * @return 
		 */
		public Student bubbleSort() {
			// 将数组转换为List对象
			List lstStus =(List)arrStus;

			// 提供Student比较器
		Collections.sort( lstStus, new StudentComparator());

			// 将list转换为数组
			//arrStus = ((Student) lstStus);
		return arrStus;
		}

		// 学生信息输出行为
		/**
		 * 打印数组
		 * 
		 * @param arr
		 */
		
		public void printArr() {
		System.out.println("使用迭代器循环遍历取出HashSet集合中的元素：");
		// 获取当前集合对象的迭代器对象
		Iterator it = ((List) arrStus).iterator();
		while (it.hasNext()) {
			System.out.println(it.next());
		}
}
}